/**
 * 定义
 *  ● 内部函数 + 对外部环境的引用 = 闭包
 * 作用
 *  ● 延伸变量的作用范围
 *  ● 变量私有化
 */
function outer() {
  var username = '张智琦'
  function inner() {
    console.log('inner', username)
    return username
  }
  return inner
}

var inner = outer()

// 延伸变量的作用范围
var username = inner()
console.log(username)

// 变量私有化
username = '张智琦2'
inner()
